﻿#pragma once

#include "NavierStokesEquation.h"

class CavityDriven : public NavierStokesEquation
{
public:
  CavityDriven(const Configuration& cfg);
  virtual ~CavityDriven(){};

  void Init() override;
  void InitialCondition() override;

  void UpdateResidual() override;

private:
  /// @brief 单元的 block id, blk_id < 0 为不可用
  ArrayHandle<vtkm::Int16> _blk_id;
  /// @brief 单元每个面的 boundary id, bnd_id < 0 为内部面
  ArrayHandle<Vec<vtkm::Int16, 4>> _bnd_id;
};
